package com.itheima.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.common.R;
import com.itheima.entity.YddTag;
import com.itheima.entity.YddTagData;
import com.itheima.service.YddTagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/ydd_tag")
public class YddTagController {
    @Autowired
    private YddTagService yddTagService;

    /**
     * 添加标签
     *
     * @param yddTag
     * @return
     */
    @PostMapping("/add")
    public R<String> save(@RequestBody YddTag yddTag) {
        yddTag.setDefaultData("1");
        yddTagService.save(yddTag);
        return R.success("添加成功");
    }

    /**
     * 标签分页查询
     * @param page
     * @param limit
     * @param tagname
     * @return
     */
    @GetMapping("/list")
    public R<YddTagData> list(String page, String limit, String tagname) {
        int page1 = Integer.parseInt(page);
        int limit1 = Integer.parseInt(limit);
        Page<YddTag>pageInfo=new Page<>(page1,limit1);
        LambdaQueryWrapper<YddTag> lqw = new LambdaQueryWrapper<>();
        lqw.like(tagname != null, YddTag::getTagname, tagname);
        Page<YddTag> page2 = yddTagService.page(pageInfo, lqw);
        YddTagData yddTagData=new YddTagData();
        //设置数据条数
        //int count = yddTagService.count();
        yddTagData.setCount((int) page2.getTotal());
        yddTagData.setPageSize((int) page2.getSize());
        //设置当前页数
        yddTagData.setCurrentPage((int)pageInfo.getCurrent());
        //设置总页数
        yddTagData.setTotalPages((int)pageInfo.getPages());
        //设置响应前端的数据
        yddTagData.setData(pageInfo.getRecords());
        return R.success(yddTagData);
    }

    /**
     * 修改标签数据回显
     * @param id
     * @return
     */
    @GetMapping("rowInfo")
    public R<YddTag>rowIfo(String id){
        YddTag yddTag = yddTagService.getById(id);
        return R.success(yddTag);
    }

    /**
     * 修改标签数据
     * @param yddTag
     * @return
     */
    @PostMapping("/update")
    public R<String>update(@RequestBody YddTag yddTag){
        yddTagService.updateById(yddTag);
        return R.success("修改成功");
    }

    /**
     * 标签删除
     * @param id
     * @return
     */
    @GetMapping("/del")
    public R<String>delete(String id){
        yddTagService.removeById(id);
        return R.success("删除成功");
    }

    /**
     * 查询标签所有
     * @return
     */
    @GetMapping("/all")
    public  R<List<YddTag>>all(){
        List<YddTag> list = yddTagService.list();
        return R.success(list);
    }
}